This invention relates generally to a system for organizing information and in particular to a dynamic personalized information organizer.
Organization of information is a very personal thing. Countless studies have shown that people think and organize data differently. An article by Vannevar Bush, entitled xe2x80x9cAs We May Thinkxe2x80x9d, published in the July 1945 issue of Atlantic Monthly describes how people associate information, and made a prediction of a machine for managing information based on an extension of what was known at the time. Mr. Bush wrote that the human mind operates by association. With one item in its grasp, it snaps instantly to the next that is suggested by the association of thoughts, in accordance with some intricate web of trails carried by the cells of the brain. It has other characteristics, of course; trails that are not frequently followed are prone to fade, items are not fully permanent, memory is transitory. Yet the speed of action, the intricacy of trails, the detail of mental pictures, is awe-inspiring beyond all else in nature.
Mr. Bush then proposed a futuristic device which is a mechanized private file and library called a memex. He describes a memex as a device in which an individual stores all his books, records, and communications, and which is mechanized so that it may be consulted with exceeding a speed and flexibility. It consists of a desk, and while it can presumably be operated from a distance, it is primarily the piece of furniture at which he works. On the top are slanting translucent screens, on which material can be projected for convenient reading. There is a keyboard, and sets of buttons and levers. Otherwise it looks like an ordinary desk.
Mr. Bush envisioned encyclopedias with a ready made mesh of associative trails running through them. This vision of the future predicts many of the navigational features of the Internet. He even describes the ability to insert comments, either linking it into a main trail or joining it by a side trail to a particular item. However, it describes a futuristic system where the user has their own copy of the all the information in order to properly catalog and associate it.
This points out several problems with existing computer systems and ways of organizing information. Constricting oneself to the organization of information by another can be very frustrating and result in slower use and assimilation of the information.
There are many ways of organizing information in known computer systems. One of the first ways of organizing information involves giving human readable names to addressable files which contain anything from computer programs to documents and images. The names may even be related to each other in a hierarchical manner, commonly known as a directory tree. Using a directory tree, programmers may place new programs in a directory under a xe2x80x9cprogramsxe2x80x9d directory to make them somewhat organized and easier to maintain. Users may then personalize the manner in which their information is stored by perhaps placing all their documents in a xe2x80x9cmy documentsxe2x80x9d directory with subdirectories for different categories of documents and other information the user wants to be able to find again.
One problem with this kind of organizational structure is that it is difficult to change the organization of the information. Many times programs have to be located in a certain directory for them to even operate. Further, the organization of much of the information is done by someone else. Each individual user may have a different desired way of organizing their own information. It is very difficult to personalize the organization of information using the existing ways of organizing information. It usually involves the user having their own copy of the information, leading to much duplication and little assurance that such copy is up to date. Further, as new information is developed, each user must then fit it into their personal organization infrastructure. Another problem is that the user must either have a specific organization that they use and remember well enough to know where to find a particular document or other copy of information. Some systems provide varying forms of indirect referencing, such as allowing the creation of shortcuts, which give the user the impression that the information is actually where they want it to be. These are very limited in their ability to actually provide a dynamic organizational structure that a user may desire.
The Internet and the world wide web provide a new layer of organization, allowing some form of organization among information contained in multiple computer systems coupled together by a network. Uniform resource locators (URLs) allow addressability of the information from any point on the network. Hypertext links are embedded in documents and other information to provide users the ability to jump to another document located anywhere on the web. These links are very beneficial. However, they always reflect someone else""s organization of the information that is embedded in the information itself. It is common experience for people to start searching the web for information on one topic, and find themselves immersed in a completely different topic in a very short time.
Further prior ways to organize information on computer systems comprises the use of relational databases, where information can be categorized and sorted or searched by subject, author, and many other fields. This is similar to the card catalogs long used by libraries. It provides no ability to personalize the organization, other than by creating new fields which can be entered and then used to sort or search the data. Relationships between the entries in the database can be defined by the use of relational algebra. This, however, does not provide the ability to specify relationships beyond those algebraic relationships provided by the database. When a relational database is built, the expressions that can be built are normally fixed. The database may only be modified by a limited set of relational expressions. It can""t be extended without extending the database. Also, it can""t take data into it that does not fit as a value of some expression that the database allows to be modeled. Not only is the actual organization of the data limited by the available set of relationships, so is the appearance or view of the data (and the view of the organization of the data). Views and Organizations of data are interrelated. Typically data has to be organized according to some pre-defined system of relationships and users are limited to a corresponding vocabulary.
There is a need for a system which allows a user to create their own organization of information without having to have their own copy of all the information. There is a need to have the ability to create such an organization independent from other organizations of the information. There is a further need to be able to organize information without changing the information so that each user can have their own organization.
Dynamic and personalized organization of information on a computer system is enabled by use of associations. An association provides addresses, referred to as a trigger and a target, between two or more entities. It may also specify a relationship or organizational structure between them in addition to a temporal order implied by the trigger and target notation. The association may also specify a tool or module which can be used to interpret the organizational structure. Associations allow users to create independent, dynamic personalized organizations of information without having to have a copy of the all the information in their own personal storage, or having to modify the information. This can be done independent of preexisting organizations of the information to provide an organization of the information which is optimized for their own use. The personalized organization can also be shared with other users.
In one aspect of the invention, the trigger comprises a navigation map ID, which essentially points to an entry in a navigation map containing metadata identifying one or more targets. In essence, the navigation map represents them as a module, such as an educational course containing multiple entities. These entities for such a course might contain a lecture, text corresponding to the lecture, an example, and a series of questions and exercises to help consolidate the learning experience. By using associations, the module may be easily modified for individual students. This is accomplished by use of an assessment following completion of the module. Based on results of the assessment, other background entities may be integrated into a sequence of entities in a next module to create a customized set of associations identifying a customized module for each individual student.
Such a set of associations can also be implemented by adding metadata tags to the data and then searching for the appropriate values. However, this requires anticipating as many possible searches as may be eventually desired and authoring the appropriate metadata. Associations allow an author to create arbitrary organizations and a subsequent author (such as an instructor) to update them at any time without having to have a complete understanding of metadata and search techniques. Attempting to update metadata could result in breaking some other aspect of the system""s expected behavior.
An application used to manage the modules, or the computer system running the application may implicitly create the associations. Further, user interfaces, such as a graphical user interface may be used by a user to explicitly create associations. In one version of the invention, icons representing the entities may be dragged and dropped onto other entities to identify the trigger and target.
The navigation map also contains metadata or information representative of the entire module, such as the name of the module, identification of the teaching assistant, the teaching assistant""s email, telephone and office, and time requirements for the entire module. Further metadata representative of the module may also be created and stored in this data structure.
A further aspect of the invention involves the ability to use associations to indicate that a relationship exists without explicitly identifying the relationship. This provides an enhanced ability over databases that use predefined relational algebraic expressions to indicate a relationship between data elements. By using an association, a relationship may be simply said to exist, without the use of such relational algebra to precisely describe the relationship. This provides much more freedom in defining such ad-hoc relationships without the limitations present in relational databases.
Multiple associations from a single trigger are created in a further aspect of the invention. One trigger to an arbitrary number of targets is provided by a combination of tables supported by a relational database. A first table, referred to as a navigation table, serves as a trigger for the relationship, and also contains the metadata for multiple targets and optionally for individual associations. The navigation table or nav map contains an ID, which is contained in a second table of associations. This second table contains multiple targets corresponding to the ID of the nav map, and may also contain individual association metadata. By use of the two tables, a second level of indirection is provided, and duplication of metadata is avoided. The insertion of entities, such as the addition of an introduction into one of the modules discussed above is simplified over the single target association model in that only a single table needs to be modified rather than modifying and moving metadata in a string of associations.
Further characteristics of the associations comprise parameters that establish conditional relationships between pieces of information. These conditional relationships establish conditions for the appropriateness of the relationship based on a context in which the information is currently being used. Associations may be data structures such as objects or interrelated records in a relational database which are separate from the information or data that they associate. A document may appear in several locations in the organization that are representative of the various ways that the document is accessed and used, but only a single copy of the document need exist.
While the basic associations engine may support some built-in kinds of relationships, it""s power lies in the ability to store arbitrary relationships and delegate interpretation of the relationship to some other entity whose identity is stored with the relationship.
Housekeeping information referred to as metadata contains information about the organizational structure provided by the associations. It includes an identification of the creator, the date each association was created, a lifetime of the association and access permissions specifying who can have access to the association. This housekeeping information has a variety of uses, including use in determining the appropriateness of the association for conditional relationships.
Several tools are provided that assist in the creation, management and usage of the organizational structures. Some of the tools include a create tool, which allows easy creation of associations independent from other organizations of the information. A find tool is used to find associations between information. A remove tool is used to remove a particular organizational structure.
A view tool is used to create an appropriate view of the association that represents the relationship between pieces of information identified by the association. A navigate tool is used to determine what to do when a user selects an association, such as simply navigating to another piece of information, or actually manipulating both pieces of information to provide a new piece of information.
An association manager creates associations dynamically based on use patterns. The association manager may create a link between two web pages when they are frequently accessed one after the other. A xe2x80x9cnextxe2x80x9d button may be associated with the page that is usually accessed next. In browsers, the next button is only used when a user has gone back to a page previously viewed. By anticipating the organization of the user, the next button is now associated with the most likely path the user would follow.